package picol.model.asa.expr;

import picol.model.asa.inst.ASAInstPicoL;
import picol.model.memory.TableSymbole;

/**
 * Classe de gestion de l'expression post incrementation
 * @author Aurélien Marcel - Julien Sanderson
 */
public class ASAExprPostIncrementation extends ASAExpr {

    private ASAExpr expr;

    public ASAExprPostIncrementation(ASAExpr _expr) {
        this.expr = _expr;
    }

    public String getLabelExplorateur() {
        return "POST INCREMENTATION";
    }

    @Override
    public ASAExpr getExpr1(){
        return expr;
    }

    @Override
    public ASAExpr getExpr2(){
        return expr;
    }

    @Override
    public int evalue() {
        String ident = "" + expr.getToken();
        int resultat = expr.evalue();
        for (TableSymbole table : ASAInstPicoL.listTblSym) {
            if (table.existeVariable(ident)) {
                table.modifierVariable(ident, new ASAExprEntier(resultat + 1));
            }
        }
        return resultat;
    }
}
